package pe.edu.upc.dew.bibliotecaweb.dao;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import pe.edu.upc.dew.bibliotecaweb.model.Persona;

/**
 * @author DEW 2010
 * Clase PersonaDao encargada de comunicarse y realizar las consultas a la base de datos (Persona)
 */
public class PersonaDao {

    /**
     * Se encarga de obtener la información de la Persona en base al username ingresado
     * @param username  Recibe una cadena que representa el nombre de usuario ingresado en la página de login
     * @return  Retorna un bean Persona con toda la información asociada al username ingresado. De no existir el username retorna null
     */
    public Persona getPersonaPorUsuario(String username) {
        Persona persona = null;
        Connection cnt = null;
        Statement st = null;
        ResultSet rs = null;
        try {
            cnt = ConnectionUtils.getConnection();
            st = cnt.createStatement();
            rs = st.executeQuery("SELECT * FROM PERSONA WHERE USUARIOPERSONA ='" + username + "'");
            if (rs.next()) {
                persona = new Persona();
                persona.setIdPersona(rs.getInt("IDPERSONA"));
                persona.setNombrePersona(rs.getString("NOMBREPERSONA"));
                persona.setTelefonoPersona(rs.getString("TELEFONOPERSONA"));
                persona.setUsuarioPersona(rs.getString("USUARIOPERSONA"));
                persona.setPasswordPersona(rs.getString("PASSWORDPERSONA"));
                //persona.setFechaNacimientoPersona(rs.getDate("FECHANACIMIENTOPERSONA"));
                persona.setTipoPersona(rs.getString("TIPOPERSONA"));  // 'B' bibliotecarios - 'A' alumnos (sólo reserva desde el catálogo)
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            ConnectionUtils.closeResultSet(rs);
            ConnectionUtils.closeStatement(st);
            ConnectionUtils.closeConnection(cnt);
        }
        return persona;
    }
}
